package com.example.photography.adapter;

import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;

import com.example.photography.R;
import com.example.photography.util.UIUtils;

import java.util.ArrayList;
import java.util.List;
/**
 * 提供PagerAdapter的实现
 * 如果ViewPager中加载的是Fragment,则提供的Adapter可以继承于具体的：FragmentStatePagerAdapter或FragmentPagerAdapter
 * FragmentStatePagerAdapter:适用于ViewPager中加载的Fragment过多，会根据最近最少使用算法，实现内存中Fragment的清理，避免溢出
 * FragmentPagerAdapter:适合少量的页面显示。该类每一个生成的Fragment对象都会储存在内存中，所以适合相对静态、页面少的情况，如果是页面多，且Fragment的处理相对动态（添加、删除等）时，使用FragmentStatePagerAdapter较为适合。
 */
public class ViewPagerAdapter extends FragmentPagerAdapter {
    private String[] tb_title;
    private List<Fragment> fragmentList;
    public ViewPagerAdapter(FragmentManager fm,String[] tb_title,List<Fragment> fragmentList) {
        super(fm);
        this.tb_title = tb_title;
        this.fragmentList = fragmentList;

    }

    @Override
    public int getCount() {
        return fragmentList == null ? 0 : fragmentList.size();
    }

    /**
     * 根据位置返回对应的Fragment
     * @param position
     * @return
     */
    @Override
    public Fragment getItem(int position) {
        return fragmentList.get(position);
    }

    @Override
    public CharSequence getPageTitle(int position) {
        //todo 放大字体显示不全
        return tb_title[position];
    }
}
